const {ccclass, property} = cc._decorator;

// 动态生成地图刚体 name: 需要生成刚体的层次名字， groupIndex: 分组index  tileMap: 地图
export default function mapInit(name: string, groupIndex:number, tileMap: cc.TiledMap) {
    let tileSize = tileMap.getTileSize();  // 地图小块尺寸 
    // console.log(tileSize);
    let layer:cc.TiledLayer = tileMap.getLayer(name);  // 得到阻挡层
    let layerSize = layer.getLayerSize();  // 得到阻挡层尺寸

    for(let i = 0; i < layerSize.width; i++) {
        for (let j = 0; j < layerSize.height; j++) {   
            let tiled:cc.TiledTile = layer.getTiledTileAt(i, j, true);  // 拿到小块
           
            // 如果元素存在
            if (tiled.gid != 0) {
                let body:cc.RigidBody = tiled.node.addComponent(cc.RigidBody);  // 动态添加RigidBody刚体
                body.type = cc.RigidBodyType.Static;  // 设置为静态，防止下落
                tiled.node.group = 'hinder'; // 将这个节点设置为wall
                tiled.node.groupIndex = groupIndex;  // 设置节点的groupIndex
                
                let collider = tiled.node.addComponent(cc.PhysicsBoxCollider); // 添加碰撞区域
                
                collider.offset = cc.v2(tileSize.width/2, tileSize.height/2)  // 设置偏移量, 除2是为了拿到中心点
                collider.size = tileSize; //包围盒的大小
                collider.apply();  //回调
            }
        }
    }
}
